11 图神经网络 GCN

我们前面通过多层感知机处理表格数据, 用 CNN 处理图像数据, 用 RNN 处理序列数据. 如果我们要探索图结构的数据 (例如交通路网中不同节点的流量预测) 这样的位置关系, 则需要使用图网络.

1 图卷积网络 GCN

1.1 邻接矩阵

设输入为 X, 网络权重为 W, 则线性神经网络为 f=σ(XW), GCN 在此基础上加入了 f=σ(AXW), 其中 A 为邻接矩阵, aij 表示 i,j 是否相连. 例如: 如下的图结构和特征,
Pasted image 20250727223040.png|350

经过邻接矩阵后变为:
Pasted image 20250727223237.png

这里我们发现, B,C 居然有着完全相同的特征, 这明显不合理, 因此邻接矩阵中还需要包含节点自身的信息: A~=A+I.

Pasted image 20250727223410.png

1.2 求平均

上述求和会改变特征的量级. 为此, 需要首先求和得到度矩阵, 也就是邻接矩阵每一行的求和得到的对角阵: D=jAij. 在上面的例子中, A 得到的度矩阵是 diag{1,2,2,3,4}.
进一步地考虑自身信息, D~=D+I=jA~ij.
最后求平均的操作变为 D~1A~X=D~1(A~X), 这相当于 A~X 每一行除以度.

1.3 Renormalization

上述方式依然有些不合理, 因为这样节点的特征会被周围节点显著影响. 修改为 A^=D~12A~D~12X.
这样同时考虑了行和列变换, 同时考虑到了两个节点自身的度. 因此如果一个小特征节点连着一个大特征节点, 且大特征节点度很大, 则它也不会把很多特征分配给小节点了.


综上, 下一层的特征就是上一层特征的图卷积 Xl+1=A^Xl, 因此一个 两层 的 GCN 网络为: Z=A^σ(A^XlW0)W1.
这本质上依然是线性神经网络!